package com.triones.api.entity.interlace.bo;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;

@Data
public class InterlaceKycBO {
    /**
     * 名（个人姓名的第一部分）
     */
    @NotBlank(message = "名不能为空")
    private String firstName;
    /**
     * 姓（个人姓名的最后部分）
     */
    @NotBlank(message = "姓不能为空")
    private String lastName;
    /**
     * 出生日期 YYYY-MM-DD
     */
    @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$", message = "日期格式必须为 YYYY-MM-DD")
    @NotBlank(message = "出生日期不能为空")
    private String dateOfBirth;
    /**
     * 性别 “M”表示男性，“F”表示女性 默认"M"
     */
    @NotBlank(message = "性别不能为空")
    @Pattern(regexp = "^[MF]$", message = "性别只能是 M 或 F")
    private String gender;
    /**
     * 职业
     */
    private String occupation;
    /**
     * 年薪
     */
    private String annualSalary;
    /**
     * 账户用途
     */
    private String accountPurpose;
    /**
     * 预期月交易量
     */
    private String expectedMonthlyVolume;
    /**
     * 国籍（请使用 ISO 3166-1 alpha-2 中定义的双字母国家/地区代码）
     */
    @NotBlank(message = "国籍不能为空")
    private String nationality;
    /**
     * 证件类型
     *
     *  各国家/地区支持的身份证件类型
     *  中国大陆
     *      中国居民身份证
     *      护照
     *  香港
     *      香港身份证
     *      护照
     * 其他国家/地区
     *      驾照
     *      护照
     *      政府签发的身份证
     *
     * 1. CN-RIC：中国居民身份证
     * 2. PASSPORT：护照
     * 3. HK-HKID：香港身份证
     * 4. DLN：驾照
     * 5. Government-Issued ID Card：政府颁发的身份证件
     */
    @NotBlank(message = "证件类型不能为空")
    private String idType;
    /**
     * 国民身份证号码 （护照/驾照/国民身份证必填）
     */
    @NotBlank(message = "证件号不能为空")
    private String nationalId;
    /**
     * 社会安全号码（Social Security Number，主要用于美国）
     * 如果国家/地区是美国，则需要 9 位 SSN
     */
    private String ssn;
    /**
     * 发证日期 YYYY-MM-DD
     */
    @NotBlank(message = "证件发证日期不能为空")
    @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$", message = "日期格式必须为 YYYY-MM-DD")
    private String issueDate;
    /**
     * 过期日期 YYYY-MM-DD
     */
    @NotBlank(message = "证件过期日期不能为空")
    @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$", message = "日期格式必须为 YYYY-MM-DD")
    private String expiryDate;
    /**
     * 地址第一行
     */
    @NotBlank(message = "地址第一行不能为空")
    private String addressLine1;
    /**
     * 地址第二行
     */
    private String addressLine2;
    /**
     * 城市
     */
    @NotBlank(message = "城市不能为空")
    private String city;
    /**
     * 省份
     */
    private String state;
    /**
     * 国家
     */
    @NotBlank(message = "国家不能为空")
    private String country;
    /**
     * 邮政编码
     * 地址的邮政编码。不允许使用空格或“+”。必须符合以下格式：^[a-zA-Z0-9]{1,15}$。示例：10001
     */
    @NotBlank(message = "邮政编码不能为空")
    private String postalCode;
    /**
     * 身份证正面ID
     */
    @NotBlank(message = "证件正面不能为空")
    private String idFrontId;
    /**
     * 身份证反面ID
     */
    private String idBackId;
    /**
     * 自拍照ID
     */
    @NotBlank(message = "自拍照不能为空")
    private String selfie;
    /**
     * 手机号码（用户的电话号码，不带国家代码，长度≤15位）
     */
    @NotBlank(message = "手机号码不能为空")
    private String phoneNumber;
    /**
     * 手机国家码（用户手机号码的国际拨号代码，仅数字，无“+”，长度≤3）
     */
    @NotBlank(message = "手机国家码不能为空")
    private String phoneCountryCode;
    /**
     * 身份证正面url（平台内使用）
     */
    private String idFrontUrl;
    /**
     * 身份证反面url（平台内使用）
     */
    private String idBackUrl;
    /**
     * 自拍照url（平台内使用）
     */
    private String selfieUrl;
}
